home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / inter54c.zip / FARCALL.LST < prev    next >
File List  |  1997-06-29  |  61KB  |  1,599 lines

  1. FAR CALL Interface List        Release 54        Last change 29jun97
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3.  
  4. =============================================
  5. >CALL 0000h:0000h - Sample Entry
  6. >InstallCheck:    how to determine CALL address if variable, whether it is
  7. >      available if address is fixed
  8. >Program: description of the program(s) providing the API
  9. >Note:    any notes related to the API
  10. >SeeAlso: related APIs, and interrupt entries for this API in INTERRUP.*
  11. >
  12. >Call entry point with:
  13. >    input registers
  14. >Return: result registers
  15. >
  16. >Format of data:
  17. >Offset    Size    Description
  18. > 00h    ...    ...
  19. =============================================
  20.  
  21. --------D-@00600000--------------------------
  22. CALL 0060h:0000h - Eagle MS-DOS v1.25 IO.SYS - INITIALIZE
  23. InstallCheck:    MS-DOS v1.25 must be installed
  24. Note:    this function should only be called by MSDOS.SYS
  25. SeeAlso: @0060h:0003h,@0060h:0039h
  26. --------D-@00600003--------------------------
  27. CALL 0060h:0003h - Eagle MS-DOS v1.25 IO.SYS - CHECK FOR KEYSTROKE
  28. InstallCheck:    MS-DOS v1.25 must be installed
  29. Note:    does not return extended keystrokes
  30. SeeAlso: @0060h:0000h,@0060h:0006h,@0060h:0027h
  31.  
  32. (Table F001)
  33. Call Eagle MS-DOS entry point 0003h with:
  34.     nothing
  35. Return: ZF set if no key
  36.     ZF clear if keystroke available
  37.         AL = keystroke
  38. --------D-@00600006--------------------------
  39. CALL 0060h:0006h - Eagle MS-DOS v1.25 IO.SYS - WAIT FOR KEYSTROKE
  40. InstallCheck:    MS-DOS v1.25 must be installed
  41. Notes:    if an extended keystroke is available, only the low byte is returned,
  42.       and this function must be called again to get the high byte
  43.     the BIOS keycode 0000h (Ctrl-Break) is returned as 00h+FFh to avoid
  44.       the ambiguity that might be caused by returning the 00h high byte
  45. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0027h
  46.  
  47. (Table F002)
  48. Call Eagle MS-DOS entry point 0006h with:
  49.     nothing
  50. Return: AL = keystroke
  51.     flags modified
  52. --------D-@00600009--------------------------
  53. CALL 0060h:0009h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO SCREEN
  54. InstallCheck:    MS-DOS v1.25 must be installed
  55. Note:    this entry point supports most of the ANSI.SYS control sequences,
  56.       plus several additional escape sequences
  57. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:000Ch
  58.  
  59. (Table F003)
  60. Call Eagle MS-DOS entry point 0009h with:
  61.     AL = character to output
  62. Return: flags modified
  63. --------D-@0060000C--------------------------
  64. CALL 0060h:000Ch - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO PRINTER
  65. InstallCheck:    MS-DOS v1.25 must be installed
  66. Note:    this entry point is able, if set by configuration (see @0060h:0039h),
  67.       to strip linefeed characters following carriage returns
  68. SeeAlso: @0060h:0000h,@0060h:0009h
  69.  
  70. (Table F004)
  71. Call Eagle MS-DOS entry point 000Ch with:
  72.     AL = character to be printed
  73. Return: flags modified
  74. --------D-@0060000F--------------------------
  75. CALL 0060h:000Fh - Eagle MS-DOS v1.25 IO.SYS - INPUT CHAR FROM AUX: DEVICE
  76. InstallCheck:    MS-DOS v1.25 must be installed
  77. Note:    if the configured AUX: device is a parallel port, this call always
  78.       returns a Ctrl-Z as the "read" character; Ctrl-Z is also returned
  79.       if the user presses Esc or Ctrl-Break while waiting for a character
  80.       to arrive on a serial port
  81. SeeAlso: @0060h:0000h
  82.  
  83. (Table F005)
  84. Call Eagle MS-DOS entry point 000Fh with:
  85.     nothing
  86. Return: AL = received character
  87. --------D-@00600012--------------------------
  88. CALL 0060h:0012h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHAR TO AUX: DEVICE
  89. InstallCheck:    MS-DOS v1.25 must be installed
  90. Note:    if the port is busy, this function waits until the port becomes
  91.       available or the user presses Esc or Ctrl-Break
  92. SeeAlso: @0060h:0000h
  93.  
  94. (Table F006)
  95. Call Eagle MS-DOS entry point 0012h with:
  96.     AL = character to output
  97. Return: flags modified
  98. --------D-@00600015--------------------------
  99. CALL 0060h:0015h - Eagle MS-DOS v1.25 IO.SYS - READ ABSOLUTE SECTOR(S)
  100. InstallCheck:    MS-DOS v1.25 must be installed
  101. SeeAlso: @0060h:0000h,@0060h:0018h,@0060h:001Bh
  102.  
  103. (Table F007)
  104. Call Eagle MS-DOS entry point 0015h with:
  105.     AL = drive table number
  106.     ES:BX -> buffer
  107.     CX = number of sectors to read
  108.     DX = logical sector number of first sector
  109.     AH = verify flag
  110. Return: CF clear if successful
  111.     CF set on error
  112.         AL = error code
  113.         0Ch drive table number out of range
  114. Note:    the drive number in AL is *not* the logical DOS drive number, but
  115.       the number of an internal data table; multiple data tables, each
  116.       describing a distinct disk format, may be shared by one logical
  117.       drive
  118. --------D-@00600018--------------------------
  119. CALL 0060h:0018h - Eagle MS-DOS v1.25 IO.SYS - WRITE ABSOLUTE SECTOR(S)
  120. InstallCheck:    MS-DOS v1.25 must be installed
  121. SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:001Bh
  122.  
  123. (Table F008)
  124. Call Eagle MS-DOS entry point 0018h with:
  125.     AL = drive table number
  126.     ES:BX -> data to be written
  127.     CX = number of sectors to write
  128.     DX = logical sector number of first sector
  129.     AH = verify flag
  130. Return: CF clear if successful
  131.     CF set on error
  132.         AL = error code
  133.         0Ch drive table number out of range
  134. Note:    the drive number in AL is *not* the logical DOS drive number, but
  135.       the number of an internal data table; multiple data tables, each
  136.       describing a distinct disk format, may be shared by one logical
  137.       drive
  138. --------D-@0060001B--------------------------
  139. CALL 0060h:001Bh - Eagle MS-DOS v1.25 IO.SYS - DETERMINE DISK FORMAT
  140. InstallCheck:    MS-DOS v1.25 must be installed
  141. SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:002Ah
  142.  
  143. (Table F009)
  144. Call Eagle MS-DOS entry point 001Bh with:
  145.     AL = DOS drive number
  146. Return: CF clear if successful
  147.         AL = drive table number
  148.         AH = ??? flag
  149.         00h ???
  150.         FFh ???
  151.     CF set on error
  152.         AL = error code
  153.         02h ???
  154.         0Ch unrecognized format
  155. --------D-@0060001E--------------------------
  156. CALL 0060h:001Eh - Eagle MS-DOS v1.25 IO.SYS - SET DAY COUNT
  157. InstallCheck:    MS-DOS v1.25 must be installed
  158. SeeAlso: @0060h:0000h,@0060h:0021h,@0060h:0024h
  159.  
  160. (Table F010)
  161. Call Eagle MS-DOS entry point 001Eh with:
  162.     AX = day count
  163. Return: nothing
  164. --------D-@00600021--------------------------
  165. CALL 0060h:0021h - Eagle MS-DOS v1.25 IO.SYS - SET SYSTEM TIME
  166. InstallCheck:    MS-DOS v1.25 must be installed
  167. SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0024h
  168.  
  169. (Table F011)
  170. Call Eagle MS-DOS entry point 0021h with:
  171.     CH = hours
  172.     CL = minutes
  173.     DH = seconds
  174.     DL = hundredths
  175. Return: flags modified
  176. --------D-@00600024--------------------------
  177. CALL 0060h:0024h - Eagle MS-DOS v1.25 IO.SYS - READ SYSTEM TIME
  178. InstallCheck:    MS-DOS v1.25 must be installed
  179. SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0021h
  180.  
  181. (Table F012)
  182. Call Eagle MS-DOS entry point 0024h with:
  183.     nothing
  184. Return: AX = day count
  185.     CH = hours
  186.     CL = minutes
  187.     DH = seconds
  188.     DL = hundredths
  189. --------D-@00600027--------------------------
  190. CALL 0060h:0027h - Eagle MS-DOS v1.25 IO.SYS - CLEAR KEYBOARD BUFFER
  191. InstallCheck:    MS-DOS v1.25 must be installed
  192. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0006h
  193.  
  194. (Table F013)
  195. Call Eagle MS-DOS entry point 0027h with:
  196.     nothing
  197. Return: ZF set
  198. --------D-@0060002A--------------------------
  199. CALL 0060h:002Ah - Eagle MS-DOS v1.25 IO.SYS - SEARCH FOR NEXT DISK FORMAT
  200. InstallCheck:    MS-DOS v1.25 must be installed
  201. SeeAlso: @0060h:0000h,@0060h:001Bh
  202.  
  203. (Table F014)
  204. Call Eagle MS-DOS entry point 002Ah with:
  205.     AL = drive table number
  206. Return: AL = next drive table number with matching disk sector size and media
  207.           ID byte
  208. --------D-@00600039--------------------------
  209. CALL 0060h:0039h - Eagle MS-DOS v1.25 IO.SYS - CONFIGURE FROM SYSINFO.SYS
  210. InstallCheck:    MS-DOS v1.25 must be installed
  211. Note:    reads the first 144 bytes of SYSINFO.SYS from the current drive into
  212.       an internal configuration buffer
  213. SeeAlso: @0060h:0000h
  214. --------V-@C0000003--------------------------
  215. CALL C000h:0003h - VIDEO BIOS INITIALIZATION
  216. InstallCheck:    C000h:0000h must contain the word AA55h and the 
  217.           512*BYTE[C000h:0002h] bytes must sum to 00h (mod 256)
  218. Note:    is normally called only by the System ROM BIOS initialization code
  219. --------V-@C0000064--------------------------
  220. CALL C000h:0064h U - ATI Mach32 VIDEO BIOS - ???
  221. InstallCheck: ATI Mach32 video board must be installed
  222. SeeAlso: @C000h:0068h"Mach32",@C000h:006Ch,@C000h:0070h
  223.  
  224. (Table F015)
  225. Call ATI Mach32 entry point with:
  226.     AL = function
  227.         00h ???
  228.         01h,02h ???
  229.         11h,12h ???
  230.         21h,22h ???
  231.         41h,42h ???
  232.         81h,82h ???
  233. Return: CF clear if successful
  234.     CF set on error
  235. --------V-@C0000064--------------------------
  236. CALL C000h:0064h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (IRET)
  237. InstallCheck: ATI Mach64 video board must be installed
  238. SeeAlso: @C000h:0068h"Mach64",INT 10/AH=A0h"Mach64"
  239. --------V-@C0000068--------------------------
  240. CALL C000h:0068h U - ATI Mach32 VIDEO BIOS - ???
  241. InstallCheck: ATI Mach32 video board must be installed
  242. SeeAlso: @C000h:0064h"Mach32",@C000h:006Ch,@C000h:0070h
  243.  
  244. (Table F016)
  245. Call ATI Mach32 entry point with:
  246.     AL = ??? (00h-02h)
  247.     ???
  248. Return: ???
  249. --------V-@C0000068--------------------------
  250. CALL C000h:0068h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (RETF)
  251. InstallCheck: ATI Mach64 video board must be installed
  252. SeeAlso: @C000h:0064h"Mach64",INT 10/AH=A0h"Mach64"
  253. --------V-@C000006C--------------------------
  254. CALL C000h:006Ch - ATI Mach32 VIDEO BIOS - 
  255. InstallCheck: ATI Mach32 video board must be installed
  256. SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:0070h
  257.  
  258. (Table F017)
  259. Call ATI Mach32 entry point with:
  260.     AL = function
  261.         00h get ???
  262.         Return: AX = ??? (019Eh)
  263.         01h get ??? information
  264.         ES:BX -> buffer for ??? information (see #F018)
  265.         Return: buffer filled
  266.         02h get ???
  267.         Return: AX = ??? (0250h)
  268.             BX = ??? (0A00h)
  269.             CX = ??? (0200h)
  270.             DX = ??? (0003h)
  271. Return: CF clear if successful
  272.     CF set if invalid function
  273.     all other registers preserved
  274. Note:    officially (Programmer's Reference Guide), interrupts should be
  275.       disabled (CLI) during a function 01h call
  276.  
  277. Format of ATI Mach32 ??? information:
  278. Offset    Size    Description    (Table F018)
  279.  00h    WORD    number of bytes of data returned (0116h for tested BIOS)
  280.  02h  2 BYTEs    ??? (00h 00h and 00h 05h seen)
  281.  04h    WORD    offset of video mode records??? (0028h)
  282.  06h    BYTE    length of one video mode record??? (22h)
  283.  07h    BYTE    ???
  284.  08h    BYTE    ??? (00h/01h, reflects bit 1 of port 36EEh)
  285.  09h    BYTE    ??? (01h)
  286.  0Ah    BYTE    ???
  287.  0Bh    BYTE    memory size
  288.         00h = 256K, 01h = 512K, 02h = 1024K, 03h = 2M, 04h = 4M
  289.  0Ch    BYTE    ???
  290.  0Dh    BYTE    ???
  291.  0Eh    BYTE    ???
  292.  0Fh    BYTE    ??? (bits 6-4 of port 42E8h)
  293.  10h    BYTE    ???
  294.  11h    BYTE    ???
  295.  12h    BYTE    ???
  296.  13h    BYTE    ???
  297.  14h    WORD    ???
  298.  16h    BYTE    ???
  299.  17h    BYTE    ???
  300.  18h    BYTE    ???
  301.  19h 14 BYTEs    unused
  302.  27h    BYTE    scratch byte used by ROM code
  303.  28h 34N BYTEs    ??? video mode records (see #F019)
  304. SeeAlso: #F017
  305.  
  306. Format of ATI Mach32 ??? video mode record:
  307. Offset    Size    Description    (Table F019)
  308.  00h    WORD    horizontal resolution in pixels
  309.  02h    WORD    vertical resolution in pixels
  310.  04h 30 BYTEs    ???
  311. SeeAlso: #F018
  312. --------V-@C0000070--------------------------
  313. CALL C000h:0070h U - ATI Mach32 VIDEO BIOS - ???
  314. InstallCheck: ATI Mach32 video board must be installed
  315. SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:006Ch
  316.  
  317. (Table F020)
  318. Call ATI Mach32 entry point with:
  319.     AH = function
  320.         00h ???
  321.         01h ???
  322.         02h ???
  323.         AL = subfunction
  324.             00h ???
  325.             01h ???
  326.         03h ???
  327.         AL = ??? (00h/nonzero)
  328. Return: CF clear if successful
  329.     CF set on error
  330. --------B-@F000E739--------------------------
  331. CALL F000h:E739h - ROM BIOS INT 14 HANDLER
  332. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  333. --------B-@F000E82E--------------------------
  334. CALL F000h:E82Eh - ROM BIOS INT 16 HANDLER
  335. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  336. --------B-@F000EC59--------------------------
  337. CALL F000h:EC59h - ROM BIOS INT 13 HANDLER
  338. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  339. --------B-@F000EFD2--------------------------
  340. CALL F000h:EFD2h - ROM BIOS INT 17 HANDLER
  341. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  342. --------B-@F000F065--------------------------
  343. CALL F000h:F065h - ROM BIOS INT 10 HANDLER
  344. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  345. --------B-@F000F841--------------------------
  346. CALL F000h:F841h - ROM BIOS INT 12 HANDLER
  347. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  348. --------B-@F000F84D--------------------------
  349. CALL F000h:F84Dh - ROM BIOS INT 11 HANDLER
  350. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  351. --------B-@F000F859--------------------------
  352. CALL F000h:F859h - ROM BIOS INT 15 HANDLER
  353. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  354. --------B-@F000FE6E--------------------------
  355. CALL F000h:FE6Eh - ROM BIOS INT 1A HANDLER
  356. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  357. --------H-@F000FFF0--------------------------
  358. CALL F000h:FFF0h - COLD-BOOT ADDRESS
  359. InstallCheck:    always present
  360. SeeAlso: @FFFFh:0000h
  361. --------H-@FFFF0000--------------------------
  362. CALL FFFFh:0000h - COLD-BOOT ADDRESS
  363. InstallCheck:    always present
  364. Note:    this address is another way of expressing F000h:FFF0h
  365. SeeAlso: @F000h:FFF0h
  366. --------m-@xxxxxxxx--------------------------
  367. CALL xxxxh:xxxxh - 10NET - 10MEMMGR.SYS
  368. InstallCheck:    see INT 21/AX=4402h"10MEMMGR"
  369. SeeAlso: INT 21/AX=4402h"10MEMMGR"
  370. --------t-@xxxxxxxx--------------------------
  371. CALL xxxxh:xxxxh - Alternate Multiplex Interrupt Specification TSRs
  372. InstallCheck:    see INT 2D"AMIS"
  373. SeeAlso: INT 2D"AMIS"
  374. ----------@xxxxxxxx--------------------------
  375. CALL xxxxh:xxxxh - AutoCAD Device Interface
  376. InstallCheck:    see INT 7A/AX=0001h
  377. SeeAlso: INT 7A/AX=0001h
  378. ----------@xxxxxxxx---------------------------
  379. CALL xxxxh:xxxxh - BIOS32 Service Directory
  380. InstallCheck:    scan paragraph boundaries E000h to FFFFh for signature string
  381.     "_32_", followed by a valid header structure (see #F021)
  382. Notes:    a 32-bit-code alternate PCI BIOS entry point may be found (if
  383.       supported) by requesting the entry point for the API with
  384.       identifier "$PCI"
  385.     an alternate entry point for INT 1A/AH=B4h may be found (if
  386.       supported) by requesting the entry point for the API with identifier
  387.       "$ACF"
  388. SeeAlso: INT 1A/AX=B100h
  389.  
  390. Format of BIOS32 Service Directory header structure:
  391. Offset    Size    Description    (Table F021)
  392.  00h  4 BYTEs    signature "_32_"
  393.  04h    DWORD    physical address of BSD entry point (see #F022)
  394.  08h    BYTE    header structure version number (currently 00h)
  395.  09h    BYTE    header structure length in paragraphs (currently 01h)
  396.  0Ah    BYTE    checksum (8-bit sum of all bytes in structure, including this
  397.           one, should equal zero)
  398.  0Bh  5 BYTEs    reserved (0)
  399.  
  400. (Table F022)
  401. Call BIOS32 Service Directory entry point with:
  402.     EBX = function
  403.         00000000h get service entry point
  404.         EAX = service identifier
  405.             49435024h ("ICP$") PCI BIOS
  406.             46434124h ("FCA$") Plug-and-Play Auto-Configuration
  407.         Return: AL = status
  408.                 00h successful
  409.                  EBX = base address of handler's code seg
  410.                  ECX = size of code segment
  411.                  EDX = offset of handler in code seg
  412.                 80h unknown service identifier
  413.         else
  414.         Return: AL = 81h invalid function
  415. Notes:    the BSD handler assumes that it is running in a 32-bit code segment
  416.     the returned entry points for PCI BIOS and Auto-Config must be called
  417.       with the same registers as the real-mode INT 1Ah interface,
  418.       including the value B1h or B4h in AH (AMI BIOS v1.00.05.AX1 returns
  419.       the same entry point for both interfaces and uses AH to distinguish
  420.       which API is desired)
  421.     some references indicate that only BL is used for the function number,
  422.       though at least one implementation actually checks the entire EBX
  423.       register; for maximum compatibility, the upper 24 bits of EBX should
  424.       be cleared when calling the entry point
  425. SeeAlso: #F021
  426. --------E-@xxxxxxxx--------------------------
  427. CALL xxxxh:xxxxh - Borland TKERNEL
  428. InstallCheck:    see INT 2F/AX=FBA1h/BX=0082h
  429. SeeAlso: INT 2F/AX=FBA1h/BX=0082h
  430. ----------@xxxxxxxx--------------------------
  431. CALL xxxxh:xxxxh - Buffit v3.0
  432. InstallCheck:    see INT 60"Buffit"
  433. SeeAlso: INT 60"Buffit"
  434. --------m-@xxxxxxxx--------------------------
  435. CALL xxxxh:xxxxh - CEMM v5.10+ Private API
  436. InstallCheck:    see INT 21/AX=4402h/SF=00h
  437. SeeAlso: INT 21/AX=4402h/SF=00h
  438. --------m-@xxxxxxxx--------------------------
  439. CALL xxxxh:xxxxh - Cloaking - PROTECTED-MODE API
  440. InstallCheck:    see INT 2C/AX=001Dh
  441. SeeAlso: INT 2C/AX=001Dh
  442. --------m-@xxxxxxxx--------------------------
  443. CALL xxxxh:xxxxh - Cloaking - REAL-MODE API
  444. InstallCheck:    see INT 2F/AX=4310h"Cloaking"
  445. SeeAlso: INT 2F/AX=4310h"Cloaking"
  446. ----------@xxxxxxxx--------------------------
  447. CALL xxxxh:xxxxh - CTMMSYS.SYS - API
  448. InstallCheck:    see INT 21/AX=4402h"CTMMSYS"
  449. Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
  450.       driver
  451. SeeAlso: INT 21/AX=4402h"CTMMSYS"
  452. --------Q-@xxxxxxxx--------------------------
  453. CALL xxxxh:xxxxh - DESQview XDI - Driver API
  454. InstallCheck:    see INT 2F/AX=DE01h
  455. SeeAlso: INT 2F/AX=DE01h
  456. --------D-@xxxxxxxx--------------------------
  457. CALL xxxxh:xxxxh - DOS Device Drivers
  458. InstallCheck:    see INT 21/AH=52h
  459. SeeAlso: INT 21/AH=52h
  460. --------E-@xxxxxxxx--------------------------
  461. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - MODE SWITCH
  462. InstallCheck:    see INT 2F/AX=1687h
  463. SeeAlso: INT 2F/AX=1687h
  464. --------E-@xxxxxxxx--------------------------
  465. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Phar Lap RUN286
  466. InstallCheck:    see INT 2F/AX=168Ah
  467. SeeAlso: INT 2F/AX=168Ah
  468. --------E-@xxxxxxxx--------------------------
  469. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Vendor-Specific APIs
  470. InstallCheck:    see INT 31/AX=0A00h
  471. SeeAlso: INT 31/AX=0A00h
  472. --------E-@xxxxxxxx--------------------------
  473. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Windows Support
  474. InstallCheck:    see INT 2F/AX=168Ah
  475. SeeAlso: INT 2F/AX=168Ah
  476. --------E-@xxxxxxxx--------------------------
  477. CALL xxxxh:xxxxh - DOS Protected-Mode Services
  478. InstallCheck:    see INT 2F/AX=43E0h
  479. SeeAlso: INT 2F/AX=43E1h
  480. --------T-@xxxxxxxx--------------------------
  481. CALL xxxxh:xxxxh - DOS Task Switcher - Callout
  482. InstallCheck:    see INT 2F/AX=4B01h
  483. SeeAlso: INT 2F/AX=4B01h
  484. --------T-@xxxxxxxx--------------------------
  485. CALL xxxxh:xxxxh - DOS Task Switcher
  486. InstallCheck:    see INT 2F/AX=4B02h
  487. SeeAlso: INT 2F/AX=4B02h
  488. ----------@xxxxxxxx--------------------------
  489. CALL xxxxh:xxxxh - Enhanced Parallel Port (EPP) BIOS
  490. InstallCheck:    see INT 17/AX=0200h/BX=5050h
  491. SeeAlso: INT 17/AX=0200h/BX=5050h
  492. --------m-@xxxxxxxx--------------------------
  493. CALL xxxxh:xxxxh - Extended Memory Specification (XMS)
  494. InstallCheck:    see INT 2F/AX=4300h
  495. SeeAlso: INT 2F/AX=4310h
  496. --------c-@xxxxxxxx--------------------------
  497. CALL xxxxh:xxxxh - FASTOPEN
  498. InstallCheck:    see INT 2F/AX=122Ah
  499. SeeAlso: INT 2F/AX=122Ah
  500. --------m-@xxxxxxxx--------------------------
  501. CALL xxxxh:xxxxh - HIGHUMM.SYS
  502. InstallCheck:    see INT 21/AX=4402h"HIGHUMM"
  503. SeeAlso: INT 21/AX=4402h"HIGHUMM"
  504. ----------@xxxxxxxx--------------------------
  505. CALL xxxxh:xxxxh - HugeRealMode Driver
  506. InstallCheck:    see INT 78/AX=0000h,INT 78/AX=0001h
  507. SeeAlso: INT 78/AX=0001h
  508. --------V-@xxxxxxxx--------------------------
  509. CALL xxxxh:xxxxh - IBM 8514/A Adapter Interface (HDILOAD)
  510. InstallCheck:    see INT 7F/AX=0105h
  511. SeeAlso: INT 7F/AX=0105h
  512. ----------@xxxxxxxx--------------------------
  513. CALL xxxxh:xxxxh - IBM 8516 Touch Screen Device Driver
  514. InstallCheck:    see INT 7F/AX=ABCDh
  515. SeeAlso: INT 7F/AX=ABCDh
  516. --------u-@xxxxxxxx--------------------------
  517. CALL xxxxh:xxxxh - IBM System 36/38 Workstation Emulation
  518. InstallCheck:    see INT 0C"SYSTEM 36/38"
  519. SeeAlso: INT 0C"SYSTEM 36/38"
  520. --------D-@xxxxxxxx--------------------------
  521. CALL xxxxh:xxxxh - IFS Drivers
  522. InstallCheck:    see INT 21/AH=52h
  523. SeeAlso: INT 21/AH=52h
  524. --------W-@xxxxxxxx--------------------------
  525. CALL xxxxh:xxxxh - IFSHLP.SYS
  526. InstallCheck:    see INT 21/AH=3Fh"IFSHLP"
  527. SeeAlso: INT 21/AH=3Fh"IFSHLP"
  528. --------b-@xxxxxxxx--------------------------
  529. CALL xxxxh:xxxxh - Intel BIOS Upgrade
  530. InstallCheck:    scan paragraph boundaries from 0F0000h to 0FFFFFh for signature
  531.       string "$IBU" (see #F023)
  532. SeeAlso: INT 15/AX=D042h/BL=00h
  533. !!! IAL\PROCESSR\PPROBIOS.PDF page 60
  534.  
  535. Format of Intel BIOS Upgrade header:
  536. Offset    Size    Description    (Table F023)
  537.  00h  4 BYTEs    signature "$IBU"
  538.  04h    BYTE    IBU specification version (currently 01h = 1.0)
  539.  05h    BYTE    length of entire header structure in bytes (currently 17h)
  540.  06h    BYTE    checksum (forces 8-bit sum of all header bytes to 00h)
  541.  07h    DWORD    real-mode entry point address
  542.  0Bh    WORD    offset of 16-bit protected mode entry point
  543.  0Dh    DWORD    segment base address of 16-bit protected-mode entry point
  544.  11h    WORD    real-mode data segment address
  545.  13h    DWORD    segment base address of 16-bit protected-mode data segment
  546. Notes:    calls from 32-bit protected mode may be made to the 16-bit entry
  547.       point, but must ensure that any stack arguments are pushed as
  548.       16-bit values instead of 32-bit values
  549.     the entry point uses standard C calling conventions to implement
  550.       functions prototyped as
  551.         int far (*entrypoint)(int function, ...)
  552. ----------@xxxxxxxx--------------------------
  553. CALL xxxxh:xxxxh - Interrupt Sharing Protocol
  554. InstallCheck:    see INT 2D"AMIS"
  555. SeeAlso: INT 2D"AMIS"
  556. --------X-@xxxxxxxx--------------------------
  557. CALL xxxxh:xxxxh - Intel System Management Bus BIOS
  558. InstallCheck:    see INT 15/AX=53B0h/BH=01h,INT 15/AX=53B0h/BH=02h
  559. SeeAlso: INT 15/AX=53B0h/BH=01h,INT 15/AX=53B0h/BH=05h
  560. --------G-@xxxxxxxx--------------------------
  561. CALL xxxxh:xxxxh - INTRSPY v1.0 only
  562. InstallCheck:    see INT 60"INTRSPY"
  563. SeeAlso: INT 60"INTRSPY"
  564. --------m-@xxxxxxxx--------------------------
  565. CALL xxxxh:xxxxh - Memory Managers
  566. InstallCheck:    see INT 21/AX=4402h/SF=00h
  567. SeeAlso: INT 21/AX=4402h/SF=00h
  568. --------m-@xxxxxxxx--------------------------
  569. CALL xxxxh:xxxxh - Microsoft EMM386.EXE
  570. InstallCheck:    see INT 67/AX=FFA5h
  571. SeeAlso: INT 67/AX=FFA5h
  572. --------M-@xxxxxxxx--------------------------
  573. CALL xxxxh:xxxxh - Microsoft Mouse Driver - Alternate Entry Point
  574. InstallCheck:    INT 33 must be non-NULL, and must not point at an IRET
  575.       instruction; the alternate entry point is located two bytes past
  576.       the INT 33 handler
  577. Note:    this alternate entry point accepts the same arguments as the
  578.       INT 33 interface, but is invoked with a FAR CALL instead of INT 33.
  579. SeeAlso: INT 33/AX=0000h
  580. --------k-@xxxxxxxx--------------------------
  581. CALL xxxxh:xxxxh - Microsoft Real-Time Compression Interface (MRCI)
  582. InstallCheck:    see INT 1A/AX=B001h
  583. SeeAlso: INT 1A/AX=B001h
  584. --------N-@xxxxxxxx--------------------------
  585. CALL xxxxh:xxxxh - Microsoft Workgroup Connection - WORKGRP.SYS
  586. InstallCheck:    see INT 21/AH=3Fh"WORKGRP.SYS"
  587. SeeAlso: INT 21/AX=4402h"WORKGRP.SYS"
  588. --------W-@xxxxxxxx--------------------------
  589. CALL xxxxh:xxxxh - MS Windows - DOSMGR Device
  590. InstallCheck:    see INT 2F/AX=1684h/BX=0015h
  591. SeeAlso: INT 2F/AX=1684h/BX=0015h
  592. --------W-@xxxxxxxx--------------------------
  593. CALL xxxxh:xxxxh - MS Windows - EDOS Device
  594. InstallCheck:    see INT 2F/AX=1684h/BX=2925h
  595. SeeAlso: INT 2F/AX=1684h/BX=2925h
  596. --------W-@xxxxxxxx--------------------------
  597. CALL xxxxh:xxxxh - MS Windows - POSTMSG Device
  598. InstallCheck:    see INT 2F/AX=1684h/BX=8888h
  599. SeeAlso: INT 2F/AX=1684h/BX=8888h
  600. --------W-@xxxxxxxx--------------------------
  601. CALL xxxxh:xxxxh - MS Windows - REBOOT Device
  602. InstallCheck:    see INT 2F/AX=1684h/BX=0009h
  603. SeeAlso: INT 2F/AX=1684h/BX=0009h
  604. --------W-@xxxxxxxx--------------------------
  605. CALL xxxxh:xxxxh - MS Windows - SHELL Device
  606. InstallCheck:    see INT 2F/AX=1684h/BX=0017h
  607. SeeAlso: INT 2F/AX=1684h/BX=0017h
  608. --------W-@xxxxxxxx--------------------------
  609. CALL xxxxh:xxxxh - MS Windows - VADMAD Device
  610. InstallCheck:    see INT 2F/AX=1684h/BX=0444h
  611. SeeAlso: INT 2F/AX=1684h/BX=0444h
  612. --------W-@xxxxxxxx--------------------------
  613. CALL xxxxh:xxxxh - MS Windows - VbillD Device
  614. InstallCheck:    see INT 2F/AX=1684h/BX=8888h
  615. SeeAlso: INT 2F/AX=1684h/BX=8888h
  616. --------W-@xxxxxxxx--------------------------
  617. CALL xxxxh:xxxxh - MS Windows - VSWITCHD Device
  618. InstallCheck:    see INT 2F/AX=1684h/BX=0750h
  619. SeeAlso: INT 2F/AX=1684h/BX=0750h
  620. --------W-@xxxxxxxx--------------------------
  621. CALL xxxxh:xxxxh - MS Windows - VTD Device
  622. InstallCheck:    see INT 2F/AX=1684h/BX=0005h
  623. SeeAlso: INT 2F/AX=1684h/BX=0005h
  624. --------W-@xxxxxxxx--------------------------
  625. CALL xxxxh:xxxxh - MS Windows - WPS Device
  626. InstallCheck:    see INT 2F/AX=1684h/BX=310Eh
  627. SeeAlso: INT 2F/AX=1684h/BX=310Eh
  628. --------m-@xxxxxxxx--------------------------
  629. CALL xxxxh:xxxxh - Netroom RM386 v6.00
  630. InstallCheck:    see INT 2F/AX=4310h
  631. SeeAlso: INT 2F/AX=4310h
  632. --------N-@xxxxxxxx--------------------------
  633. CALL xxxxh:xxxxh - Novell - ODI Link Support Layer
  634. InstallCheck:    see INT 2F/AX=C000h"LSL.COM"
  635. SeeAlso: INT 2F/AX=C000h"LSL.COM"
  636. --------O-@xxxxxxxx--------------------------
  637. CALL xxxxh:xxxxh - Novell DOS 7 DELWATCH.EXE
  638. InstallCheck:    see INT 2F/AX=10FEh
  639. SeeAlso: INT 2F/AX=10FEh
  640. --------m-@xxxxxxxx--------------------------
  641. CALL xxxxh:xxxxh - Novell DOS 7 EMM386.EXE
  642. InstallCheck:    see INT 2F/AX=12FFh/BX=0106h
  643. SeeAlso: INT 2F/AX=12FFh/BX=0106h
  644. --------N-@xxxxxxxx--------------------------
  645. CALL xxxxh:xxxxh - Novell NetWare - Access Server Driver
  646. InstallCheck:    see INT 2F/AX=7AF1h
  647. SeeAlso: INT 2F/AX=7AF1h
  648. --------N-@xxxxxxxx--------------------------
  649. CALL xxxxh:xxxxh - Novell NetWare - DOS Requester
  650. InstallCheck:    see INT 2F/AX=7A20h/BX=0000h
  651. SeeAlso: INT 2F/AX=7A20h/BX=0000h
  652. --------N-@xxxxxxxx--------------------------
  653. CALL xxxxh:xxxxh - Novell Netware - Event Service Layer
  654. InstallCheck:    see INT 2F/AX=C000h"NESL"
  655. SeeAlso: INT 2F/AX=C000h"NESL"
  656. --------N-@xxxxxxxx--------------------------
  657. CALL xxxxh:xxxxh - Novell NetWare - IPX
  658. InstallCheck:    see INT 2F/AX=7A00h
  659. SeeAlso: INT 2F/AX=7A00h
  660. --------N-@xxxxxxxx--------------------------
  661. CALL xxxxh:xxxxh - Novell NetWare - IPXODI
  662. InstallCheck:    see INT 2F/AX=7A2Fh
  663. SeeAlso: INT 2F/AX=7A2Fh
  664. --------N-@xxxxxxxx--------------------------
  665. CALL xxxxh:xxxxh - Novell NetWare - TCP/IP Protocol Stack
  666. InstallCheck:    see INT 2F/AX=7A40h
  667. SeeAlso: INT 2F/AX=7A40h
  668. --------N-@xxxxxxxx--------------------------
  669. CALL xxxxh:xxxxh - Novell NetWare - VLM
  670. InstallCheck:    see INT 2F/AX=7A20h/BX=0000h
  671. SeeAlso: INT 2F/AX=7A20h/BX=0000h
  672. --------N-@xxxxxxxx--------------------------
  673. CALL xxxxh:xxxxh - Novell NetWare - VLM CallA
  674. InstallCheck:    see INT 2F/AX=7A20h/BX=0001h
  675. SeeAlso: INT 2F/AX=7A20h/BX=0001h
  676. --------N-@xxxxxxxx--------------------------
  677. CALL xxxxh:xxxxh - Novell NetWare - VLM Multicast
  678. InstallCheck:    see INT 2F/AX=7A20h/BX=0004h
  679. SeeAlso: INT 2F/AX=7A20h/BX=0004h
  680. --------N-@xxxxxxxx--------------------------
  681. CALL xxxxh:xxxxh - Novell NetWare - VLM Multiplex
  682. InstallCheck:    see INT 2F/AX=7A20h/BX=0002h
  683. SeeAlso: INT 2F/AX=7A20h/BX=0002h
  684. --------N-@xxxxxxxx--------------------------
  685. CALL xxxxh:xxxxh - Novell NetWare - VLM Parse API
  686. InstallCheck:    see INT 2F/AX=7A20h/BX=0003h
  687. SeeAlso: INT 2F/AX=7A20h/BX=0003h
  688. --------N-@xxxxxxxx--------------------------
  689. CALL xxxxh:xxxxh - Novell NetWare Lite - CLIENT
  690. InstallCheck:    see INT 2F/AX=D800h
  691. SeeAlso: INT 2F/AX=D800h
  692. --------N-@xxxxxxxx--------------------------
  693. CALL xxxxh:xxxxh - Novell NetWare Lite - NLCACHE/NWCACHE
  694. InstallCheck:    see INT 2F/AX=D8C0h
  695. SeeAlso: INT 2F/AX=D8C0h
  696. --------N-@xxxxxxxx--------------------------
  697. CALL xxxxh:xxxxh - Novell NetWare Lite - SERVER
  698. InstallCheck:    see INT 2F/AX=D880h
  699. SeeAlso: INT 2F/AX=D880h
  700. --------R-@xxxxxxxx--------------------------
  701. CALL xxxxh:xxxxh - pcANYWHERE IV/LAN
  702. InstallCheck:    see INT 21/AX=2B44h/BX=4D41h
  703. SeeAlso: INT 21/AX=2B44h/BX=4D41h
  704. --------X-@xxxxxxxx--------------------------
  705. CALL xxxxh:xxxxh - PCI BIOS v2.0c Protected-Mode API
  706. InstallCheck:    see INT 1A/AX=B101h
  707. SeeAlso: INT 1A/AX=B101h
  708. ----------@xxxxxxxx--------------------------
  709. CALL xxxxh:xxxxh - PenDOS PENDEV.SYS
  710. InstallCheck:    see INT 21/AX=4402h"PENDEV"
  711. SeeAlso: INT 21/AX=4402h"PENDEV"
  712. --------E-@xxxxxxxx--------------------------
  713. CALL xxxxh:xxxxh - Phar Lap 386/DOS-Extender v4.1
  714. InstallCheck:    see INT 2F/AX=ED03h
  715. SeeAlso: INT 2F/AX=ED03h
  716. --------X-@xxxxxxxx--------------------------
  717. CALL xxxxh:xxxxh - Plug-and-Play BIOS v1.0A
  718. InstallCheck:    scan paragraph boundaries F000h to FFFFh for signature string
  719.       "$PnP" followed by a valid Plug-and-Play header structure
  720.       (see #F024)
  721. SeeAlso: @xxxxh:xxxxh"BIOS32 Service Directory",INT 1A/AH=B4h
  722.  
  723. Format of Plug-and-Play Installation Structure:
  724. Offset    Size    Description    (Table F024)
  725.  00h  4 BYTEs    signature "$PnP"
  726.  04h    BYTE    Plug-and-Play version (major in high nybble, BCD minor in low)
  727.         10h for current specification
  728.  05h    BYTE    length of Installation Structure in bytes
  729.  06h    WORD    control field
  730.         bits 15-2 reserved
  731.         bits 1-0: event notification mechanism
  732.              00 not supported
  733.              01 polling
  734.              10 asynchronous (interrupt time)
  735.  08h    BYTE    checksum (8-bit sum of all bytes in structure, including this
  736.           one, should equal zero)
  737.  09h    DWORD    physical address of event notification flag if using polling
  738.         (bit 0 set when a system even occurs)
  739.  0Dh    WORD    real mode entry offset (see #F025)
  740.  0Fh    WORD    real mode code segment
  741.  11h    WORD    16-bit protected mode entry point offset (see #F025)
  742.  13h    DWORD    16-bit protected mode code segment base address
  743.  17h    DWORD    OEM device identifier
  744.  1Bh    WORD    real mode data segment
  745.  1Dh    DWORD    16-bit protected mode data segment base address
  746.  
  747. (Table F025)
  748. Call Plug-and-Play BIOS entry point with:
  749.     STACK:    WORD    function number
  750.             0000h Get Number of System Device Nodes (see #F026)
  751.             0001h Get System Device Node (see #F027)
  752.             0002h Set System Device Node (see #F028)
  753.             0003h Get Event (see #F029)
  754.             0004h Send Message (see #F031)
  755.             0005h Get Docking Station Information (see #F033)
  756.             0006h reserved for future versions
  757.             0007h Select Primary Boot Devices (see #F034)
  758.             0008h Get Primary Boot Devices (see #F035)
  759.             0009h Set Statically Allocated Resource Information
  760.                   (see #F037)
  761.             000Ah Get Statically Allocated Resource Information
  762.                   (see #F038)
  763.             000Bh Get APM ID Table (see #F039)
  764.             0040h Get Plug-and-Play ISA Configuration Structure
  765.                   (see #F041)
  766.             0041h Get Extended System Configuration Data Info
  767.                   (see #F043)
  768.             0042h Read Extended SYstem Configuration Data
  769.                   (see #F044)
  770.             0043h Write Extended SYstem Configuration Data
  771.                   (see #F045)
  772.             ---Desktop Management Interface v2.0---
  773.             0050h Get DMI Information (see #F046)
  774.             0051h Get DMI structure (see #F047)
  775.             ---BIOS Boot Specification---
  776.             0060h Get Version and Installation Check (see #F048)
  777.             0061h Get IPL Device Count (see #F049)
  778.             0062h Get Boot Priority and IPL Table (see #F050)
  779.             0063h Set Boot Priority (see #F051)
  780.             0064h Get IPL Device from Last Boot (see #F052)
  781.             0065h Get Boot First (see #F053)
  782.             0066h Set Boot First (see #F054)
  783.             0067h-006Fh reserved
  784.         var    function arguments
  785.         WORD    PnP BIOS writable segment/selector
  786. Return: AX = status (see #F055)
  787. Notes:    the caller must provide at least 1024 bytes of stack space for use by
  788.       the Plug-and-Play BIOS
  789.     this API is bi-modal; all calls are available in both real mode and
  790.       16-bit protected mode (if calling from 32-bit protected mode, care
  791.       must be taken to ensure proper alignment of the stack arguments)
  792. SeeAlso: #F024
  793.  
  794. (Table F026)
  795. Call Plug-and-Play BIOS function 00h with:
  796.     STACK:    WORD    0000h (function "Get Number of System Device Nodes")
  797.         DWORD    -> BYTE in which to return number of device nodes
  798.         DWORD    -> WORD in which to return size of largest device node
  799.         WORD    PnP BIOS writable segment/selector
  800. Return: AX = status (see #F055)
  801. Note:    the large-model C declaration is
  802.       int (*entry)(int, unsigned char *, unsigned int *, unsigned int);
  803.  
  804. (Table F027)
  805. Call Plug-and-Play BIOS function 01h with:
  806.     STACK:    WORD    0001h (function "Get System Device Node")
  807.         DWORD    -> BYTE containing node number or handle
  808.         DWORD    -> buffer for device node
  809.         WORD    control flag
  810.             bits 15-2 reserved (0)
  811.             bit 1: get static config (values for next boot)
  812.             bit 0: get current (dynamic) configuration
  813.         WORD    PnP BIOS writable segment/selector
  814. Return: AX = status (see #F055)
  815. Notes:    the large-model C declaration is
  816.       int (*entry)(int, unsigned char *, DEV_NODE *, unsigned int,
  817.         unsigned int);
  818.     exactly one of the two defined bits in the control flag must be set
  819.  
  820. (Table F028)
  821. Call Plug-and-Play BIOS function 02h with:
  822.     STACK:    WORD    0002h (function "Set System Device Node")
  823.         DWORD    -> BYTE containing node number or handle
  824.         DWORD    -> buffer containing device node
  825.         WORD    control flag
  826.             bits 15-2 reserved (0)
  827.             bit 1: set static config (values for next boot)
  828.             bit 0: set current (dynamic) configuration
  829.         WORD    PnP BIOS writable segment/selector
  830. Return: AX = status (see #F055)
  831. Notes:    the large-model C declaration is
  832.       int (*entry)(int, unsigned char *, DEV_NODE *, unsigned int,
  833.         unsigned int);
  834.     exactly one of the two defined bits in the control flag must be set
  835.  
  836. (Table F029)
  837. Call Plug-and-Play BIOS function 03h with:
  838.     STACK:    WORD    0003h (function "Get Event")
  839.         DWORD    -> WORD buffer for event message identifier (see #F030)
  840.         WORD    PnP BIOS writable segment/selector
  841. Return: AX = status (see #F055)
  842. Note:    the large-model C declaration is
  843.       int (*entry)(int, unsigned int *, unsigned int);
  844.  
  845. (Table F030)
  846. Values for PnP Event Identifier:
  847.  0001h    "ABOUT_TO_CHANGE_CONFIG" preliminary notification of changes, including
  848.       docking and undocking
  849.  0002h    "DOCK_CHANGED" devices have been added to or removed from system
  850.  0003h    "SYSTEM_DEVICE_CHANGED" removable system devices have been inserted
  851.       or removed
  852.  0004h    "CONFIG_CHANGE_FAILED" error detected while atempting to add or remove
  853.       devices
  854.  8000h-FFFEh OEM-defined events
  855.  FFFFh    "UNKNOWN_SYSTEM_EVENT"
  856.  
  857. (Table F031)
  858. Call Plug-and-Play BIOS function 04h with:
  859.     STACK:    WORD    0004h (function "Send Message")
  860.         WORD    message identifier (see #F032)
  861.         WORD    PnP BIOS writable segment/selector
  862. Return: AX = status (see #F055)
  863. Note:    the large-model C declaration is
  864.       int (*entry)(int, unsigned int, unsigned int);
  865. SeeAlso: #F031,#F033
  866.  
  867. (Table F032)
  868. Values for PnP Message Identifier:
  869.  0000h    "OK"
  870.  0001h    "ABORT" action which caused an ABOUT_TO_X message
  871.  0002h-003Fh reserved for future Response Messages
  872.  0040h    "UNDOCK_DEFAULT_ACTION"
  873.  0041h    "POWER_OFF"
  874.  0042h    "PNP_OS_ACTIVE"
  875.  0043h    "PNP_OS_INACTIVE"
  876.  0044h-007Fh reserved for future Control Messages
  877.  8000h-FFFFh OEM-defined messages
  878.  
  879. (Table F033)
  880. Call Plug-and-Play BIOS function 05h with:
  881.     STACK:    WORD    0005h (function "Get Docking Station Information")
  882.         DWORD    -> buffer for docking station info (see #F036)
  883.         WORD    PnP BIOS writable segment/selector
  884. Return: AX = status (see #F055)
  885. Note:    the large-model C declaration is
  886.       int (*entry)(int, unsigned char *, unsigned int);
  887. SeeAlso: #F031,#F034
  888.  
  889. (Table F034)
  890. Call Plug-and-Play BIOS function 07h with:
  891.     STACK:    WORD    0007h (function "Select Primary Boot Devices")
  892.         WORD    type of primary boot device
  893.             0000h primary input
  894.             0001h primary output
  895.             0002h primary IPL
  896.         DWORD    Plug-and-Play 32-bit device ID or FFFFFFFFh for ISA
  897.         DWORD    device serial number or FFFFFFFFh
  898.         DWORD    32-bit logical device ID or FFFFFFFFh for ISA device
  899.         WORD    physical unit number
  900.         WORD    control flag
  901.             bits 15-1 reserved (0)
  902.             bit 0: do not check for attached device during PnP POST
  903.                   boot device selection
  904.         DWORD    -> preferred resource allocation or -> END_TAG if none
  905.         WORD    PnP BIOS writable segment/selector
  906. Return: AX = status (see #F055)
  907. Note:    the large-model C declaration is
  908.       int (*entry)(int, int, unsigned long, unsigned long, unsigned long,
  909.         int, int, char *, unsigned int);
  910.  
  911. (Table F035)
  912. Call Plug-and-Play BIOS function 08h with:
  913.     STACK:    WORD    0008h (function "Get Primary Boot Devices")
  914.         WORD    type of primary boot device
  915.             0000h primary input
  916.             0001h primary output
  917.             0002h primary IPL
  918.         DWORD    -> DWORD buffer for Plug-and-Play 32-bit device ID
  919.         DWORD    -> DWORD buffer for device serial number
  920.         DWORD    -> DWORD buffer for logical device ID
  921.         DWORD    -> WORD buffer for physical unit number
  922.         DWORD    -> buffer for preferred resource allocation
  923.         WORD    PnP BIOS writable segment/selector
  924. Return: AX = status (see #F055)
  925. Note:    the large-model C declaration is
  926.       int (*entry)(int, int, unsigned long *, unsigned long *,
  927.         unsigned long *, unsigned int *, char *, unsigned int);
  928.  
  929. Format of Plug-and-Play Docking Station Information:
  930. Offset    Size    Description    (Table F036)
  931.  00h    DWORD    docking station location identifier (EISA device ID format)
  932.         FFFFFFFFh if unknown or no product identifier
  933.  04h    DWORD    serial number or 00000000h
  934.  08h    WORD    capabilities
  935.         bits 15-3 reserved (0)
  936.         bits 2-1: hot-pluggability
  937.             00 power-down required to dock/undock
  938.             01 must be in suspend mode ("warm" dock/undock)
  939.             10 system can be hot-docked
  940.             11 reserved
  941.         bit 0: docking station provides support for controlling
  942.               sequence of docking/undocking
  943.  
  944. (Table F037)
  945. Call Plug-and-Play BIOS function 09h with:
  946.     STACK:    WORD    0009h (function "Set Statically Allocated Resource
  947.               Information")
  948.         DWORD    -> block of statically-allocated resources as described
  949.               in the Plug-and-Play ISA Spec
  950.         WORD    PnP BIOS writable segment/selector
  951. Return: AX = status (see #F055)
  952. Notes:    the large-model C declaration is
  953.       int (*entry)(int, unsigned char *, unsigned int);
  954.     if the returned status is 008Dh, the Plug-and-Play BIOS supports
  955.       ESCD, and the caller should thus use functions 41h to 43h instead
  956.       of 09h and 0Ah
  957.  
  958. (Table F038)
  959. Call Plug-and-Play BIOS function 0Ah with:
  960.     STACK:    WORD    000Ah (function "Get Statically Allocated Resource
  961.               Information")
  962.         DWORD    -> buffer for statically-allocated resources as
  963.               described in the Plug-and-Play ISA Spec
  964.         WORD    PnP BIOS writable segment/selector
  965. Return: AX = status (see #F055)
  966. Notes:    the large-model C declaration is
  967.       int (*entry)(int, unsigned char *, unsigned int);
  968.     if the returned status is 008Dh, the Plug-and-Play BIOS supports
  969.       ESCD, and the caller should thus use functions 41h to 43h instead
  970.       of 09h and 0Ah
  971.  
  972. (Table F039)
  973. Call Plug-and-Play BIOS function 0Bh with:
  974.     STACK:    WORD    000Bh (function "Get APM ID Table")
  975.               Information")
  976.         DWORD    -> WORD buffer for size of data buffer
  977.         DWORD    -> buffer for storing APM ID table (see #F040)
  978.         WORD    PnP BIOS writable segment/selector
  979. Return: AX = status (see #F055)
  980. Desc:    copies the Advanced Power Management v1.1 device identifier table to
  981.       Plug-and-Play device identifier mappings
  982. Note:    the large-model C declaration is
  983.       int (*entry)(int, unsigned int *, unsigned char *, unsigned int);
  984. SeeAlso: INT 15/AX=5300h
  985.  
  986. Format of Plug-and-Play APM ID Table:
  987. Offset    Size    Description    (Table F040)
  988.  00h    DWORD    Plug-and-Play device identifier
  989.  04h    WORD    APM v1.1+ identifier
  990. SeeAlso: #F039
  991.  
  992. (Table F041)
  993. Call Plug-and-Play BIOS function 40h with:
  994.     STACK:    WORD    0040h (function "Get Plug-and-Play ISA Configuration
  995.               Structure")
  996.         DWORD    -> buffer for configuration structure (see #F042)
  997.         WORD    PnP BIOS writable segment/selector
  998. Return: AX = status (see #F055)
  999. Note:    the large-model C declaration is
  1000.       int (*entry)(int, unsigned char *, unsigned int);
  1001.  
  1002. Format of Plug-and-Play ISA Configuration Structure:
  1003. Offset    Size    Description    (Table F042)
  1004.  00h    BYTE    structure revision level (01h)
  1005.  01h    BYTE    total Card Select Numbers (CSNs) assigned
  1006.  02h    WORD    ISA Read Data Port (see also PORT 0A79h)
  1007.  04h    WORD    reserved (0)
  1008. SeeAlso: #F041
  1009.  
  1010. (Table F043)
  1011. Call Plug-and-Play BIOS function 41h with:
  1012.     STACK:    WORD    0041h (function "Get Extended System Configuration
  1013.               Information")
  1014.         DWORD    -> WORD buffer for size of nonvolatile storage
  1015.         DWORD    -> WORD buffer for size of ESCD allocated
  1016.         DWORD    -> DWORD buffer for physical base address of NV storage
  1017.               (if memory-mapped, else 00000000h)
  1018.         WORD    PnP BIOS writable segment/selector
  1019. Return: AX = status (see #F055)
  1020. Note:    the large-model C declaration is
  1021.       int (*entry)(int, unsigned int *, unsigned int *, unsigned long *,
  1022.           unsigned int);
  1023. SeeAlso: INT 1A/AX=B401h
  1024.  
  1025. (Table F044)
  1026. Call Plug-and-Play BIOS function 42h with:
  1027.     STACK:    WORD    0042h (function "Read Extended System Configuration
  1028.               Data")
  1029.         DWORD    -> buffer for storing ESCD
  1030.         WORD    read/writable selector for ESCD if memory-mapped and
  1031.               called in protected mode (ignored otherwise)
  1032.         WORD    PnP BIOS writable segment/selector
  1033. Return: AX = status (see #F055)
  1034. Notes:    the large-model C declaration is
  1035.       int (*entry)(int, unsigned char *, unsigned int, unsigned int);
  1036.     if an ESCD selector is required, the caller must construct a 16-bit
  1037.       data segment selector with a limit of 64K
  1038.  
  1039. (Table F045)
  1040. Call Plug-and-Play BIOS function 43h with:
  1041.     STACK:    WORD    0043h (function "Write Extended System Configuration
  1042.               Data")
  1043.         DWORD    -> buffer containing ESCD
  1044.         WORD    read/writable selector for ESCD if memory-mapped and
  1045.               called in protected mode (ignored otherwise)
  1046.         WORD    PnP BIOS writable segment/selector
  1047. Return: AX = status (see #F055)
  1048. Notes:    the large-model C declaration is
  1049.       int (*entry)(int, unsigned char *, unsigned int, unsigned int);
  1050.     if an ESCD selector is required, the caller must construct a 16-bit
  1051.       data segment selector with a limit of 64K
  1052.  
  1053. (Table F046)
  1054. Call Desktop Management Specification function 50h with:
  1055.     STACK:    WORD    0050h (function "Get DMI Information")
  1056.         DWORD    -> buffer for ASCIZ DMI BIOS revision string
  1057.         DWORD    -> WORD to receive number of DMI structures
  1058.         DWORD    -> WORD to receive DMI structure size
  1059.         DWORD    -> DWORD to receive DMI storage base address
  1060.         DWORD    -> WORD to receive DMI storage size
  1061.         WORD    BIOS selector
  1062. Return: AX = status (see #F055)
  1063. Note:    the large-model C declaration is
  1064.       short (*entry)(int, unsigned char *, unsigned short *,
  1065.             unsigned short *, unsigned long *, unsigned short *,
  1066.             unsigned short) ;
  1067. SeeAlso: #F047
  1068.  
  1069. (Table F047)
  1070. Call Desktop Management Specification function 51h with:
  1071.     STACK:    WORD    0051h (function "Get DMI Structure")
  1072.         DWORD    -> WORD "structure"
  1073.         DWORD    -> buffer for DMI structure
  1074.         WORD    DMI selector
  1075.         WORD    BIOS selector
  1076. Return: AX = status (see #F055) 
  1077. Note:    the large-model c declaration is
  1078.       short (*entry)(int, unsigned short *, unsigned char *, unsigned short,
  1079.             unsigned short) ;
  1080. SeeAlso: #F046
  1081.  
  1082. (Table F048)
  1083. Call BIOS Boot Specification function 60h with:
  1084.     STACK:    WORD    0060h (function "Get Version and Installation Check")
  1085.         DWORD    -> WORD buffer for BIOS Boot Spec version number (BCD)
  1086. Return: AX = status (see #F055)
  1087.        0081h if BIOS Boot not available
  1088. Note:    the large-model C declaration is
  1089.       int (*entry)(int, int *) ;
  1090. SeeAlso: #F049,#F050,#F051,#F052
  1091.  
  1092. (Table F049)
  1093. Call BIOS Boot Specification function 61h with:
  1094.     STACK:    WORD    0061h (function "Get IPL Device Count")
  1095.         DWORD    -> WORD buffer for number of IPL devices in system
  1096.         DWORD    -> WORD buffer for max. number of IPL devices supported
  1097.         DWORD    -> WORD buffer for size of an IPL table entry
  1098. Return: AX = status (see #F055)
  1099. Note:    the large-model C declaration is
  1100.       int (*entry)(int, unsigned int *, unsigned int *, unsigned int *) ;
  1101. SeeAlso: #F048,#F050,#F051,#F052
  1102.  
  1103. (Table F050)
  1104. Call BIOS Boot Specification function 62h with:
  1105.     STACK:    WORD    0062h (function "Get Boot Priority and IPL Table")
  1106.         DWORD    -> buffer for copy of boot priority stored in NVRAM
  1107.         DWORD    -> buffer for IPL table
  1108. Return: AX = status (see #F055)
  1109. Notes:    the large-model C declaration is
  1110.       int (*entry)(int, unsigned char *, unsigned char *) ;
  1111.     the size of the boot priority buffer must be at least MaxIPL bytes
  1112.       (see #F049), of which the first CurrentIPL bytes are valid, with
  1113.       the lowest-valued byte indicating the device which should attempt
  1114.       booting first, the next lowest second, etc.
  1115.     the size of the IPL table buffer must be at least MaxIPL + IPLsize
  1116.       bytes (see #F049)
  1117. SeeAlso: #F048,#F049,#F051,#F052
  1118.  
  1119. (Table F051)
  1120. Call BIOS Boot Specification function 63h with:
  1121.     STACK:    WORD    0063h (function "Set Boot Priority")
  1122.         DWORD    -> buffer containing new boot priority list (see #F050)
  1123. Return: AX = status (see #F055)
  1124. Note:    the large-model C declaration is
  1125.       int (*entry)(int, unsigned char *) ;
  1126. SeeAlso: #F048,#F049,#F050,#F052
  1127.  
  1128. (Table F052)
  1129. Call BIOS Boot Specification function 64h with:
  1130.     STACK:    WORD    0064h (function "Get IPL Device from Last Boot")
  1131.         DWORD    -> WORD buffer for index in IPL table of boot device
  1132. Return: AX = status (see #F055)
  1133. Note:    the large-model C declaration is
  1134.       int (*entry)(int, unsigned int *) ;
  1135. SeeAlso: #F048,#F049,#F050,#F051,#F053
  1136.  
  1137. (Table F053)
  1138. Call BIOS Boot Specification function 65h with:
  1139.     STACK:    WORD    0065h (function "Get Boot First")
  1140.         DWORD    -> WORD buffer for index in IPL table of current
  1141.               first boot device
  1142. Return: AX = status (see #F055)
  1143. Notes:    the large-model C declaration is
  1144.       int (*entry)(int, unsigned int *) ;
  1145.     the boot-first device will attempt booting before the boot-priority
  1146.       list is considered
  1147. SeeAlso: #F048,#F049,#F050,#F051,#F054
  1148.  
  1149. (Table F054)
  1150. Call BIOS Boot Specification function 66h with:
  1151.     STACK:    WORD    0066h (function "Set Boot First")
  1152.         DWORD    -> WORD containing index in IPL table of new device
  1153.               from which to attempt booting first before
  1154.               considering the boot priority list
  1155. Return: AX = status (see #F055)
  1156. Note:    the large-model C declaration is
  1157.       int (*entry)(int, 
  1158. SeeAlso: #F048,#F049,#F050,#F051,#F053
  1159.  
  1160. (Table F055)
  1161. Values for Plug-and-Play function status code:
  1162.  0000h    successful
  1163.  0001h    boot device resource configuration not saved to nonvolatile memory
  1164.  0002h-007Eh reserved for future warnings
  1165.  0055h    unable to read/write Extended System Config Data from nonvolatile mem
  1166.  0056h    no valid Extended System Configuration Data in nonvolatile storage
  1167.  0059h    user's buffer was too small for Extended System Configuration Data
  1168.  007Fh    device could not be configured statically, but dynamic config succeeded
  1169.  0081h    unknown function
  1170.  0082h    unsupported function
  1171.  0083h    invalid device node (or DMI structure) number/handle
  1172.  0084h    bad parameter
  1173.  0085h    failure setting device node
  1174.     invalid DMI subfunction
  1175.  0086h    no pending events
  1176.  0087h    system not docked
  1177.  0088h    no ISA Plug-and-Play cards installed
  1178.  0089h    unable to determine docking station's capabilities
  1179.  008Ah    undocking sequence failed because system unit does not have a battery
  1180.  008Bh    resource conflict with a primary boot device
  1181.  008Ch    buffer provided by user was too small
  1182.  008Dh    must use ESCD support for specified device
  1183.  008Eh    message not supported
  1184.  008Fh    hardware error
  1185. SeeAlso: #0908
  1186.  
  1187. Format of Option ROM header:
  1188. Offset    Size    Description    (Table F056)
  1189.  00h    WORD    AA55h signature
  1190.  02h    BYTE    length of option ROM in 512-byte pages (should be multiple 4)
  1191.  03h  4 BYTEs    standard initialization entry point
  1192.         (called with ES:DI -> PnP Installation Structure)
  1193.  07h 19 BYTEs    reserved
  1194.  1Ah    WORD    offset to PnP Expansion Header
  1195.  
  1196. Format of Expansion Header:
  1197. Offset    Size    Description    (Table F057)
  1198.  00h  4 BYTEs    signature ("$PnP" for Plug-and-Play expansion header)
  1199.  04h    BYTE    structure version number
  1200.  05h    BYTE    length of entire header in paragraphs
  1201.  06h    WORD    offset to next header or 0000h
  1202.  08h    BYTE    reserved
  1203.  09h    BYTE    checksum (sum of all bytes in header, including this one,
  1204.           mod 256 should equal zero)
  1205. ---PnP Expansion Header---
  1206.  0Ah    DWORD    Plug-and-Play device identifier
  1207.  0Eh    WORD    offset of manufacturer ID string in Option ROM or 0000h
  1208.  10h    WORD    offset of product name string in Option ROM or 0000h
  1209.  12h  3 BYTEs    device type code (see #F059)
  1210.         byte 0: base type (general kind of device)
  1211.         byte 1: device subtype
  1212.         byte 2: device programming interface
  1213.  15h    BYTE    device indicator flags (see #F058)
  1214.  16h    WORD    Boot Connection Vector offset (real/protected mode) or 0000h
  1215.         (see #F062)
  1216.  18h    WORD    Disconnect Vector offset (real/protected mode) or 0000h
  1217.         far-called by system BIOS is boot attempt failed
  1218.  1Ah    WORD    bootstrap entry point (real/protected mode) or 0000h
  1219.  1Ch    WORD    reserved (0)
  1220.  1Eh    WORD    Static Resource Information offset (real/prot mode) or 0000h
  1221.         should be used only by non-PnP devices to make them PnP-aware
  1222.           (see #F063)
  1223.  
  1224. Bitfields for Plug-and-Play device indicator flags:
  1225. Bit(s)    Description    (Table F058)
  1226.  7    supports Device Driver Initialization model
  1227.  6    may be shadowed in RAM
  1228.  5    may be read cached
  1229.  4    only required if device used for booting
  1230.  3    reserved (0)
  1231.  2    device is Initial Program Load (IPL, i.e. boot) device
  1232.  1    device is Input device
  1233.  0    device is Display device
  1234. SeeAlso: #F059
  1235.  
  1236. (Table F059)
  1237. Values for Plug-and-Play device type code:
  1238. Type    Subtype        Description
  1239.  00h    ---    reserved
  1240.  01h    ---    mass storage
  1241.     00h      SCSI controller
  1242.     01h      IDE controller
  1243.     02h      floppy controller (NEC 765-compatible)
  1244.     03h      IPI controller
  1245.     04h      RAID controller
  1246.     80h      other
  1247.  02h    ---    network interface controller
  1248.     00h      Ethernet
  1249.     01h      Token Ring
  1250.     02h      FDDI
  1251.     03h      ATM
  1252.     80h      other
  1253.  03h    ---    display controller
  1254.     00h      VGA
  1255.     01h      SuperVGA
  1256.     02h      XGA
  1257.     80h      other
  1258.  04h    ---    multi-media controller
  1259.     00h      video
  1260.     01h      audio
  1261.     80h      other
  1262.  05h    ---    memory
  1263.     00h      RAM
  1264.     01h      Flash memory
  1265.     80h      other
  1266.  06h    ---    bridge controller
  1267.     00h      host processor bridge
  1268.     01h      ISA bridge
  1269.     02h      EISA bridge
  1270.     03h      MicroChannel bridge
  1271.     04h      PCI bridge
  1272.     05h      PCMCIA bridge
  1273.     06h      NuBus bridge
  1274.     07h      CardBus bridge
  1275.     80h      other
  1276.  07h    ---    communications device
  1277.     00h      XT-compatible RS-232
  1278.     01h      AT-compatible parallel port
  1279.     80h      other
  1280.  08h    ---    system peripherals
  1281.     00h      8259-compatible Programmable Interrupt Controller
  1282.     01h      8237-compatible DMA Controller
  1283.     02h      8254-compatible system timer
  1284.     03h      real-time clock
  1285.     80h      other
  1286.  09h    ---    input device
  1287.     00h      keyboard controller
  1288.     01h      digitizer/pen
  1289.     02h      mouse
  1290.     80h      other
  1291.  0Ah    ---    docking station
  1292.     00h      generic docking station
  1293.     80h      other
  1294.  0Bh    ---    CPU
  1295.     00h      386-based
  1296.     01h      486-based
  1297.     02h      Pentium-based
  1298.     03h      Pentium-Pro (P6)
  1299.     10h      DEC Alpha
  1300.     40h      coprocessor
  1301.  0Ch    ---    Serial Bus controller
  1302.     00h      Firewire (IEEE 1394)
  1303.     01h      ACCESS.bus
  1304.     02h      SSA
  1305.     03h      Universal Serial Bus (USB)
  1306.             programming interface 10h = OpenHCI Host Controller
  1307. SeeAlso: #F058,#F060,#0790
  1308.  
  1309. (Table F060)
  1310. Values for Plug-and-Play generic EISA device ID:
  1311.  PNP0xxx    system devices
  1312.  PNP00xx      interrupt controller
  1313.  PNP0000        AT interrupt controller
  1314.  PNP0001        EISA interrupt controller
  1315.  PNP0002        MCA interrupt controller
  1316.  PNP0003        APIC
  1317.  PNP0004        Cyrix SLiC MP interrupt controller
  1318.  PNP01xx      timer
  1319.  PNP0100        AT timer
  1320.  PNP0101        EISA timer
  1321.  PNP0102        MCA timer
  1322.  PNP02xx      DMA controller
  1323.  PNP0200        AT DMA controller
  1324.  PNP0201        EISA DMA controller
  1325.  PNP0202        MCA DMA controller
  1326.  PNP03xx      keyboard
  1327.  PNP0300        PC/XT keyboard controller (83-key)
  1328.  PNP0301        PC/AT keyboard controller (84-key)
  1329.  PNP0302        PC/XT keyboard controller (84-key)
  1330.  PNP0303        IBM enhanced keyboard (101/102-key, PS/2 mouse)
  1331.  PNP0304        Olivetti keyboard (83-key)
  1332.  PNP0305        Olivetti keyboard (102-key)
  1333.  PNP0306        Olivetti keyboard (86-key)
  1334.  PNP0307        enhanced keyboard with Windows keys
  1335.  PNP0308        General Input Device Emulation Interface (GIDEI) legacy
  1336.  PNP0309        Olivetti keyboard (A101/102-key)
  1337.  PNP030A        AT&T 302 keyboard
  1338.  PNP04xx      parallel port
  1339.  PNP0400        standard printer port
  1340.  PNP0401        ECP printer port
  1341.  PNP05xx      serial port
  1342.  PNP0500        standard 8250/16450 UART
  1343.  PNP0501        16550A-compatible UART
  1344.  PNP06xx      disk controller
  1345.  PNP0600        generic ESDI/IDE/ATA controller
  1346.  PNP0601        Plus Hardcard II
  1347.  PNP0602        Plus Hardcard IIXL/EX
  1348.  PNP0700      standard floppy controller
  1349.  PNP0800      PC speaker
  1350.  PNP09xx      display adapter
  1351.  PNP0900        VGA-compatible
  1352.  PNP0Axx      periperal bus
  1353.  PNP0A00        ISA
  1354.  PNP0A01        EISA
  1355.  PNP0A02        MCA
  1356.  PNP0A03        PCI
  1357.  PNP0A04        VESA/VL bus
  1358.  PNP0A05        generic ACPI bus
  1359.  PNP0A06        extended IO bus
  1360.  PNP0A07        SMB bus
  1361.  PNP0A08        ACPI three-wire device bus
  1362.  PNP0A09        ACPI two-wire device bus
  1363.  PNP0B00      AT-style real-time clock
  1364.  PNP0Cxx      BIOS/system board
  1365.  PNP0C00        Plug-and-Play BIOS
  1366.  PNP0C01        system board
  1367.  PNP0C02        (PnP-reserved resources)
  1368.  PNP0C03        Plug-and-Play event notification interrupt
  1369.  PNP0C04        math coprocessor
  1370.  PNP0C08        ACPI driver/BIOS
  1371.  PNP0C09        embedded controller device
  1372.  PNP0C0A        control method battery
  1373.  PNP0C0B        fan
  1374.  PNP0C0C        power button
  1375.  PNP0C0D        lid
  1376.  PNP0Exx      PCMCIA controller chipset
  1377.  PNP0E00        Intel 82365-compatible
  1378.  PNP0Fxx      mouse
  1379.  PNP8xxx    network adapter
  1380.  PNP9xxx    modem
  1381.  PNPAxxx    SCSI controller/proprietary CD-ROM controller
  1382.  PNPA000        Adaptec 154x-compatible
  1383.  PNPA001        Adaptec 174x-compatible
  1384.  PNPA002        Future Domain 16-700-compatible
  1385.  PNPBxxx    sound/video/multimedia
  1386.  PNPB000        Sound Blaster 1.5
  1387.  PNPB001        Sound Blaster 2.0
  1388.  PNPB002        Sound Blaster Pro
  1389.  PNPB004        Thunderboard
  1390.  PNPB005        Adlib-compatible FM synthesis
  1391.  PNPB006        MPU-401
  1392.  PNPB007        Microsoft Windows Sound System
  1393.  PNPB008        Compaq Waveform
  1394.  PNPB010        Motion Video device (MCI)
  1395.  PNPB011        MIDI Sequencer (MCI)
  1396.  PNPB012        Wave Audio (MCI)
  1397.  PNPB013        VISCA VCR (MCI)
  1398.  PNPB014        Pioneer Laserdisk (MCI)    
  1399.  PNPB015        CD Audio (MCI)
  1400.  PNPB020        Yamaha OPL3-compatible FM synthesis
  1401.  PNPB02F        joystick/game port
  1402.  ACPI0001    three-wire serial memory device
  1403.  ACPI0002    two-wire serial memory device
  1404. SeeAlso: #F059,#F061
  1405.  
  1406. (Table F061)
  1407. Values for data tags:
  1408.  22h    IRQ descriptor, no flags
  1409.  23h    IRQ descriptor, with flags
  1410.  2Ah    DMA descriptor
  1411.  30h    Dependent Function start
  1412.  31h    Dependent Function start, with priority byte
  1413.  38h    Dependent Function end
  1414.  47h    I/O port descriptor
  1415.  4Bh    fixed-location I/O port descriptor
  1416.  78h    "END_TAG" end of resource descriptors
  1417. SeeAlso: #F060
  1418.  
  1419. (Table F062)
  1420. Values Boot Connection Vector is called with:
  1421.     AX = which vectors to hook
  1422.        bit 2: connect as IPL (INT 13)
  1423.        bit 1: connect as primary video (INT 10)
  1424.        bit 0: connect as primary input (INT 09)
  1425.     ES:DI -> system BIOS PnP Installation Check Structure
  1426.     BX = Card Select Number for this card (ISA bus only)
  1427.     DX = read data port (ISA only) or FFFFh
  1428. SeeAlso: #F063
  1429.  
  1430. (Table F063)
  1431. Values Static Resource Information vector is called with:
  1432.     ES:DI -> buffer for device's static resource config info (at least 1024
  1433.           bytes)
  1434. SeeAlso: #F062
  1435.  
  1436. Format of Plug-and-Play System Device Node:
  1437. Offset    Size    Description    (Table F064)
  1438.  00h    WORD    size of device node in bytes
  1439.  02h    BYTE    device node number/handle
  1440.  03h    DWORD    EISA product identifier
  1441.  07h  3 BYTEs    device type code
  1442.  0Ah    WORD    attribute flags
  1443.         bits 15-9 reserved (0)
  1444.         bits 8-7: configurability
  1445.             00 can only be statically configured for next boot
  1446.             01 can be dynamically configured at runtime
  1447.             10 reserved
  1448.             11 can only be dynamically configured
  1449.         bit 6: removable device
  1450.         bit 5: docking station
  1451.         bit 4: capable of being primary IPL (boot) device
  1452.         bit 3: capable of being primary input device
  1453.         bit 2: capable of being primary output device
  1454.         bit 1: device is not configurable
  1455.         bit 0: device can not be disabled
  1456.  0Ch    var    allocated resource configuration descriptors
  1457.     var    possible resource configuration descriptors
  1458.     var    compatible device identifiers
  1459. --------m-@xxxxxxxx--------------------------
  1460. CALL xxxxh:xxxxh - POST Memory Manager Specification (PMM) v1.0
  1461. InstallCheck:    scan paragraph boundaries E000h to FFFFh for signature string
  1462.       "$PMM" followed by a valid PMM header structure (see #F065)
  1463. Note:    the PMM is only available at system boot -- between the completion
  1464.       of the memory check and the call to INT 19; this includes Option
  1465.       ROM initialization and Plug-and-Play Boot Connection Vectors, but
  1466.       not the Bootstrap Entry Vector (which is called after INT 19)
  1467. SeeAlso: INT 2F/AX=4300h,INT 67/AH=40h
  1468.  
  1469. Format of POST Memory Manager Specification structure:
  1470. Offset    Size    Description    (Table F065)
  1471.  00h  4 BYTEs    signature "$PMM"
  1472.  04h    BYTE    structure version number (01h)
  1473.  05h    BYTE    length of structure in bytes
  1474.  06h    BYTE    checksum of structure (value needed to force byte-wise sum
  1475.         of entire structure to be 00h)
  1476.  07h    DWORD    -> PMM entry point (real mode only) (see #F066)
  1477.  0Bh  5 BYTEs    reserved (0)
  1478. SeeAlso: #F024
  1479.  
  1480. (Table F066)
  1481. Call POST Memory Manager Specification entry point with:
  1482.     STACK:    WORD    function number
  1483.             0000h pmmAllocate (see #F067)
  1484.             0001h pmmFind (see #F068)
  1485.             0002h pmmDeallocate (see #F069)
  1486.         additional parameters vary by function
  1487. Notes:    PMM calls use standard large-model C-language calling conventions
  1488.     the caller must provide at least 256 bytes of stack space; BIOSes
  1489.       which support this specification will provide at least 1024 bytes
  1490.       of stack space when calling a ROM initialization vector, Boot
  1491.       Connection Vector, or Bootstrap Entry Vector (thus allowing the
  1492.       Option ROM's code to provide sufficient stack space when calling
  1493.       the PMM)
  1494.  
  1495. (Table F067)
  1496. Call PMM "pmmAllocate" entry point with:
  1497.     STACK:    WORD    0000h (function "pmmAllocate")
  1498.         DWORD    length of memory block, in paragraphs
  1499.             if 00000000h, only get size of largest available block
  1500.         DWORD    handle to assign to memory block, or FFFFFFFh for
  1501.               "anonymous" block
  1502.         WORD    option flags
  1503.             bit 0: allocate from conventional memory
  1504.             bit 1: allocate from extended memory
  1505.             bit 2: use alignment based on least-significant set
  1506.                 bit of requested length
  1507. Return: DX:AX = 32-bit physical address of allocated memory block, or
  1508.           size of largest available block in paragraphs, or
  1509.           00000000h if specified handle is already in use, or
  1510.           FFFFFFFFh if allocation failed
  1511. Notes:    at least one of bits 0 and 1 must be set in the option flags; both
  1512.       may be set if the location of the memory block is not important
  1513.     the specification requires that an Option ROM must use handles
  1514.       compliant with the Plug-and-Play specification (high 16 bits are
  1515.       manufacturer's vendor ID, low 16 bits are vendor-defined); handles
  1516.       whose highest bit is set or highest six bits are all clear are
  1517.       reserved for the BIOS, and the BIOS may flag attempts to use such
  1518.       reserved handles
  1519. SeeAlso: #F066,#F068,#F069
  1520.  
  1521. (Table F068)
  1522. Call PMM "pmmFind" entry point with:
  1523.     STACK:    WORD    0001h (function "pmmFind")
  1524.         DWORD    handle to be found
  1525. Return: DX:AX = 32-bit physical address of allocated memory block, or
  1526.           00000000h if handle is not in use
  1527. Desc:    get the address of the memory block associated with the given handle
  1528. SeeAlso: #F066,#F067,#F069
  1529.  
  1530. (Table F069)
  1531. Call PMM "pmmDeallocate" entry point with:
  1532.     STACK:    WORD    0002h (function "pmmDeallocate")
  1533.         DWORD    physical address of block (as returned by pmmAllocate)
  1534. Return: DX:AX = FFFFFFFFh on error
  1535. Notes:    the memory block is cleared to all zeros by the PMM
  1536.     invalid functions (0003h-FFFFh) return DX:AX = FFFFFFFFh
  1537. SeeAlso: #F066,#F067,#F068
  1538. --------b-@xxxxxxxx--------------------------
  1539. CALL xxxxh:xxxxh - BIOS Boot Specification (BBS)
  1540. InstallCheck:    perform Plug-and-Play installation check, then call PnP
  1541.       function 60h
  1542. SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
  1543. --------m-@xxxxxxxx--------------------------
  1544. CALL xxxxh:xxxxh - QEMM Programming Interface (QPI)
  1545. InstallCheck:    see INT 67/AH=3Fh
  1546. SeeAlso: INT 67/AH=3Fh
  1547. --------m-@xxxxxxxx--------------------------
  1548. CALL xxxxh:xxxxh - QEXT.SYS Private API
  1549. InstallCheck:    see INT 15/AX=11DEh
  1550. SeeAlso: INT 15/AX=11DEh
  1551. --------m-@xxxxxxxx--------------------------
  1552. CALL xxxxh:xxxxh - Quarterdeck VIDRAM
  1553. InstallCheck:    see INT 2F/AX=D201h/BX=5649h
  1554. SeeAlso: INT 2F/AX=D201h/BX=5649h
  1555. --------s-@xxxxxxxx--------------------------
  1556. CALL xxxxh:xxxxh - SoundBlaster Speech Driver
  1557. InstallCheck:    see INT 2F/AX=FBFBh
  1558. SeeAlso: INT 2F/AX=FBFBh
  1559. --------k-@xxxxxxxx--------------------------
  1560. CALL xxxxh:xxxxh - Stacker
  1561. InstallCheck:    see INT 2F/AX=4A12h/CX=5354h
  1562. SeeAlso: INT 2F/AX=4A12h/CX=5354h
  1563. --------s-@xxxxxxxx--------------------------
  1564. CALL xxxxh:xxxxh - VESA Audio Interface Driver
  1565. InstallCheck:    see INT 10/AX=4F13h/BX=0002h
  1566. SeeAlso: INT 10/AX=4F13h/BX=0002h
  1567. --------m-@xxxxxxxx--------------------------
  1568. CALL xxxxh:xxxxh - Virtual Control Program Interface (VCPI) - Protected-Mode
  1569. InstallCheck:    see INT 67/AX=DE01h
  1570. SeeAlso: INT 67/AX=DE01h
  1571. --------N-@xxxxxxxx--------------------------
  1572. CALL xxxxh:xxxxh - WEB v4.02 - MODULE APIs
  1573. InstallCheck:    see INT 2F/AH=EEh
  1574. SeeAlso: INT 2F/AH=EEh
  1575. ---------------------------------------------
  1576.  
  1577.  
  1578. ----------@xxxxxxxx--------------------------
  1579. CALL xxxxh:xxxxh - 
  1580. InstallCheck:    
  1581. SeeAlso: 
  1582. --------!---Admin----------------------------
  1583. Highest Table Number = F069
  1584. --------!---FILELIST-------------------------
  1585. Please redistribute all of the files comprising the interrupt list (listed at
  1586. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  1587. quartet of archives named INTER54A through INTER54D (preferably the original
  1588. authenticated PKZIP archives), and the utility and hypertext conversion
  1589. programs in three additional archives called INTER54E.ZIP to INTER54G.ZIP
  1590.  
  1591. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  1592. --------!---CONTACT_INFO---------------------
  1593. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  1594. UUCP: {uunet,harvard}!pobox.com!ralf
  1595. FIDO: Ralf Brown 1:129/26.1
  1596.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  1597.     unless you address it to me)
  1598. CIS:  >INTERNET:ralf@pobox.com
  1599.